home *** CD-ROM | disk | FTP | other *** search
/ The PC-SIG Library 10 / The PC-Sig Library - Shareware for the IBM PC and Compatibles (PC-SIG)(Tenth Edition Disks 1-2804)(1991).iso / PC_SIGCD / 07 / 3 / DISK0731.ZIP / CAFR next >
Text File  |  1987-02-09  |  11KB  |  320 lines

  1. Date: January 25, 1987
  2.  
  3. For more information:
  4.      James E. Tarvid
  5.      Logical Support
  6.      State Road 700 at Peach Bottom Creek
  7.      Route 2 Box 73
  8.      Independence, Virginia 24348
  9.      (703) 773-3419
  10. -----------------------------------------------------------------------------
  11.  
  12.          FILE RETRIEVAL USING INVERTED BIT VECTORS - James E. Tarvid
  13.  
  14.                                   ABSTRACT
  15.  
  16.      This paper describes a computer software technology for rapid retrieval 
  17.  
  18. of information from unstructured data such as collections of letters, 
  19.  
  20. resumes, abstracts, reports, or depositions residing on a mass storage device 
  21.  
  22. such as diskettes, hard disks, and compact disks using compact indices.  The 
  23.  
  24. method uses a two step process of indexing and retrieval.  The index
  25.  
  26. structure employed is a high density inverted bit matrix indexed by word and
  27.  
  28. file.  A prototype for demonstrating the technology is available for personal
  29.  
  30. computers.
  31.  
  32.  
  33.                                 INTRODUCTION
  34.  
  35.      Most of the keystrokes eventually stored on computer systems comprise 
  36.  
  37. tokens or more simply words of identity, quality and quantity.  The 
  38.  
  39. information contained therein depends on both the form and the content of the 
  40.  
  41. information structures and their interpretation by the end user.  The 
  42.  
  43. expansion of computer usage has increased that proportion of stored 
  44.  
  45. information which is unstructured while the evolution of computer technology 
  46.  
  47. counters with ever greater yet still primitive understanding of information 
  48.  
  49. structures themselves.  In spite of the advances in "artificial 
  50.  
  51. intelligence", we are years away from adequately automatically translating 
  52.  
  53. raw text into information structures.  Only a small amount of the information 
  54.  
  55. entered on computers is available in a form suitable for retrieval by "fourth 
  56.  
  57. generation languages" (4GL).  In the mean time, there is a need to support
  58.  
  59. human activity in retrieving information from that vast bulk of unstructured
  60.  
  61. information.
  62.  
  63.  
  64.                       INFORMATION STRUCTURE ASSUMPTIONS
  65.  
  66.      Unstructured information such as letters, depositions, resumes, reports 
  67.  
  68. and abstracts are generally stored as text files.  From the primitive 
  69.  
  70. computer point of view, these files consists of one long string of 
  71.  
  72. characters.  Without too much loss of information or functionality, we can 
  73.  
  74. consider the files to consist of words separated by punctuation and blank 
  75.  
  76. space.  Obviously, the information contained depends on the juxtaposition of 
  77.  
  78. qualifiers and quantifiers, but for the purposes of the technology described 
  79.  
  80. herein, we shall be content with the notion that text is a sequence of words 
  81.  
  82. with no discernible significance in their order.
  83.  
  84.  
  85.                                 COST FACTORS
  86.  
  87.      In computer parlance, we are predicating a structure of entities, which
  88.  
  89. are files, and attributes, which are words (independent of the position of 
  90.  
  91. words within the file).  More naturally we are talking about an index of 
  92.  
  93. files by word.  Obviously, a more sophisticated structure is conceivable but 
  94.  
  95. we are responding here to economic needs and constraints of space and time.  
  96.  
  97. The index consists of entity-attribute couples which have as items a word and 
  98.  
  99. a file which contains that word.  We can produce such an index by scanning 
  100.  
  101. files, producing file-word couples, sorting on word, eliminating duplicates 
  102.  
  103. and merging.  Given such an index, it is easy to see how to quickly return a 
  104.  
  105. list of files containing a particular word.  It is also easy to see that such 
  106.  
  107. an index would be much larger than the text itself.
  108.  
  109.  
  110.                            INFORMATION COMPRESSION
  111.  
  112.      Natural text is frequently compressed by the use of abbreviations.  We 
  113.  
  114. commonly accept "USA" for the "United States of America" or "MD" for "medical 
  115.  
  116. doctor.  Some technical compression efforts are natural and easy.  For 
  117.  
  118. example, the identifier for a file can be reduced to a number if a 
  119.  
  120. corresponding structure maps that number back into a file name.  That is we 
  121.  
  122. can use the number "5" for the file "xyz" if the fifth slot of a table 
  123.  
  124. contains "xyz".  Now we can represent the index as a dictionary with a list 
  125.  
  126. of file numbers.  The size of the dictionary is still rather large but 
  127.  
  128. efficiency improves as the number of files increases and in some cases the 
  129.  
  130. costs of the dictionary may well be within value of the index.  Still to be 
  131.  
  132. generally useful, a much smaller index is needed.
  133.  
  134.      Less naturally, words can be converted into numbers by treating the 
  135.  
  136. characters as mathematical operands.  At the simplest we can treat the word 
  137.  
  138. as a large binary integer.  For text encoded in ASCII, the American Standard 
  139.  
  140. Code for Information Interchange", the range of values produced extends from 
  141.  
  142. 65 for the binary bit pattern for the word "A" into the billions for binary 
  143.  
  144. bit patterns for short words such as "name".  The range can be compressed by 
  145.  
  146. restricting the domain to the 26 letters ignoring case, but the range of 
  147.  
  148. radix 26 number is still large and consequently not very dense.  Fortunately, 
  149.  
  150. a technique known as hashing has been around for decades.  Hashing words 
  151.  
  152. consists of converting the letters making up a word to a number and then 
  153.  
  154. "folding" the number into a limited range by dividing by a constant and 
  155.  
  156. taking the remainder.  The hash code may be thought of as a mathematical
  157.  
  158. abbreviation.  There is a loss of specificity since two or more words may 
  159.  
  160. produce the same remainder much as an abbreviation may stand for two 
  161.  
  162. different words ("Dr" for "doctor" and "drive").  Such words are called 
  163.  
  164. "scramble synonyms".  The loss of specificity, while troublesome in some 
  165.  
  166. regards, permits a much greater density of information in the index.  
  167.  
  168.      At this point, the problem being addressed can be reduced a square 
  169.  
  170. matrix of code, file number pairs.  Both of the matrix indices are dense and 
  171.  
  172. can be represented as a "bit" matrix where the row index is the hash codes 
  173.  
  174. and the column index is the file number and a bit indicates which files 
  175.  
  176. contain a word which generate the corresponding hash code.
  177.  
  178.  
  179.                                 PROGRAM LOGIC
  180.  
  181.      Producing the index and using it become a simple matter.
  182.  
  183.      Indexing consists of reading each file to be indexed, hashing each word, 
  184.  
  185. and setting the bit in a vector corresponding to the hash code.  Each file 
  186.  
  187. produces a separate vector.  The set of vectors comprises a matrix which is 
  188.  
  189. transposed and written to disk.  If the matrix is too large to fit in memory 
  190.  
  191. successive transposed matrices are merged.  In a hierarchical directory 
  192.  
  193. system, the scope of files to be indexed can be presumed to be a directory 
  194.  
  195. node, its files, and all its sub nodes and their files.  Unwanted files may 
  196.  
  197. be classified by extension or type and indexing of common words suppressed.  
  198.  
  199. Incremental indexing can be provided on file attributes such as "date".
  200.  
  201.      Retrieval consists of hashing each word in a "keyword list", retrieving 
  202.  
  203. the rows corresponding to the hash codes, "and-ing" the rows together, 
  204.  
  205. searching the row for set bits, and converting the index to a file name.  
  206.  
  207. Other boolean operators in the retrieval language such as "or" for synonyms 
  208.  
  209. are easy to implement.
  210.  
  211.  
  212.                           SCRAMBLE SYNONYM PROBLEM
  213.  
  214.      As noted before, the price of using a hash code to compress the index is
  215.  
  216. that two or more words may have the same code.  A retrieval specifying a
  217.  
  218. single word is likely to include names of files which do not in fact contain
  219.  
  220. the word.  First, it should be noted that every file containing the specified
  221.  
  222. word is returned by a retrieval.  Second, the use of multiple keywords in a
  223.  
  224. retrieval greatly diminishes the number of "false hits".  Third, a post
  225.  
  226. retrieval scan could be made.  In fact, using inverted bit matrices before 
  227.  
  228. doing more complicated searches could greatly improve their efficiency as 
  229.  
  230. well.  
  231.  
  232.  
  233.                                 APPLICATIONS
  234.  
  235.      While the scope of applications amenable to this technique is extremely 
  236.  
  237. broad, it may be helpful to consider a few applications.
  238.  
  239.      Matching skills with requirements is common in large diverse 
  240.  
  241. organizations.  Typically a list of commonly required skills is drawn up and 
  242.  
  243. each individual's skills are surveyed.  The individual-skill record is 
  244.  
  245. inverted (sorted or indexed) on skill.  From such an index, a list of 
  246.  
  247. individuals having a particular skill is easily produced.  Several problems 
  248.  
  249. can arise.  First, the survey may not include the requisite skills.  It is 
  250.  
  251. difficult to anticipate all the skills that might be required in an 
  252.  
  253. organization.  Second, a fair amount of effort is required to prepare the 
  254.  
  255. skills matrix and maintain it, hence it is likely to be less than complete or 
  256.  
  257. current in its contents.  Now consider the case where the employment 
  258.  
  259. histories are on disk along with project summaries.  After generating an 
  260.  
  261. index and periodically adding new files, a current list of individuals that 
  262.  
  263. may have the necessary attributes can be generated instantly.
  264.  
  265.      Word processing centers in organizations may produce thousands of 
  266.  
  267. documents.  Typically, these documents are discarded or archived on diskette, 
  268.  
  269. which is tantamount to the same thing.  A typical letter contains about 2000 
  270.  
  271. characters and costs about $2 to type.  The cost of permanent disk storage 
  272.  
  273. for such a letter is less than one penny yet virtually no one could can make 
  274.  
  275. a general query such as "has anyone corresponded with John Smith in Nigeria 
  276.  
  277. on the use of time controlled valves in drip irrigation?".  The inverted 
  278.  
  279. index makes such a query and even more obscure queries simple.
  280.  
  281.      Corporate and institutional libraries have proven invaluable in support 
  282.  
  283. of professional activity.  Eventually, much of the material is indexed or 
  284.  
  285. abstracted, and in the hands of a skilled librarian the needed references may 
  286.  
  287. make it into the hands of users but probably not in time for critical needs.  
  288.  
  289. Now consider the situation in which staff members are encouraged to make 
  290.  
  291. brief comments about significant material they encounter in routine 
  292.  
  293. operations.  Collected on disk and indexed say once per week, any 
  294.  
  295. professional could instantly generate a list of references along with the 
  296.  
  297. judgments of their associates.
  298.  
  299.      Real estate brokers have combined with their colleagues through 
  300.  
  301. "multiple listing services" to match buyers with properties.  Although the 
  302.  
  303. information management services provided are expensive and generally
  304.  
  305. cumbersome, they provide little more information than property descriptions,
  306.  
  307. buyer profiles, a PC with a hard disk, a word processing program, and an
  308.  
  309. inverted index would provide at a fraction of the cost.
  310.  
  311.                                   PROTOTYPE
  312.  
  313.      A prototype of the system is available for MS-DOS and PC-DOS compatible 
  314.  
  315. systems at nominal cost.  Firms, institutions, and individuals wishing to 
  316.  
  317. incorporate the technology in their systems and operations should write or 
  318.  
  319. call for details.
  320.